"""
配置文件
用于管理不同环境的配置
"""
import os
import secrets

class Config:
    """基础配置"""
    # 密钥（生产环境应使用环境变量）
    SECRET_KEY = os.getenv('SECRET_KEY', secrets.token_hex(32))
    
    # 服务器配置
    HOST = os.getenv('HOST', '0.0.0.0')
    PORT = int(os.getenv('PORT', 5000))
    DEBUG = os.getenv('DEBUG', 'True').lower() == 'true'
    
    # WebSocket配置
    PING_TIMEOUT = 60
    PING_INTERVAL = 25
    
    # CORS配置
    CORS_ALLOWED_ORIGINS = os.getenv('CORS_ORIGINS', '*')
    
    # 数据配置
    MAX_HISTORY_PER_DEVICE = 100  # 每个设备最多保存的历史记录数

class DevelopmentConfig(Config):
    """开发环境配置"""
    DEBUG = True
    HOST = '0.0.0.0'

class ProductionConfig(Config):
    """生产环境配置"""
    DEBUG = False
    HOST = '127.0.0.1'  # 只监听本地，通过Nginx代理
    CORS_ALLOWED_ORIGINS = os.getenv('CORS_ORIGINS', 'https://yourdomain.com')

class TestingConfig(Config):
    """测试环境配置"""
    TESTING = True
    DEBUG = True

# 配置字典
config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig,
    'testing': TestingConfig,
    'default': DevelopmentConfig
}

def get_config():
    """获取当前配置"""
    env = os.getenv('FLASK_ENV', 'development')
    return config.get(env, config['default'])


